<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 利用递归求某个数字的阶乘

    
    // 分析
    // 5! = 5 * 4 * 3 * 2 * 1
        //  5 * 4!
            //  4 * 3!
                //  3 * 2!        
                    //  2 * 1!
                        //  1
    // 功能：计算阶乘，功能的名字：abc(5)
    // abc(5) = 5 * abc(4)
                    //  4 * abc(3)
                            //  3 * abc(2)
                                    //  2 * abc(1)
                                            //  1
    // 计算n的阶乘
    // 递归的公式：要重复执行的功能
    // abc(n) = n * abc(n-1)
    // 递的终点，归的起点，是递归最重要的条件
    // abc(1) = 1

    function abc(n){
        if(n === 1){
            return 1;
        }else{
            return n * abc(n-1);
        }
    }
    // console.log(abc(5));


    // ==========


    // 1，1，2，3，5，8，13，21，34，55...
    // 功能：fn，用来计算第n个的数字
    // fn(5) = fn(4) + fn(3)
    // fn(4) = fn(3) + fn(2)
    // fn(3) = fn(2) + fn(1)
    // fn(2) = 1
    // fn(1) = 1
    
    // 公式
    // fn(n) = fn(n-1) + fn(n-2)
    // 终点和起点
    // fn(2) = 1
    // fn(1) = 1

    // function fn(n){
    //     if(n === 1 || n === 2){
    //         return 1
    //     }else{
    //         return fn(n-1) + fn(n-2);
    //     }
    // }
    // console.log(fn(10));



</script>
</html>